package com.zuipin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zuipin.entity.product.EvaluationInfo;
import com.zuipin.util.Pagination;
import com.zuipin.vo.EvaluationVo;

import net.sf.json.JSONObject;

/**
 * 评论信息数据操作接口类
 *
 * @ClassName EvaluationInfoMapper 
 * @author wangcongyi
 * @date 2017年7月4日 下午4:55:46
 */
@Mapper
public interface EvaluationInfoMapper {
	int deleteByPrimaryKey(Long id);
	
	int insert(EvaluationInfo record);
	
	int insertSelective(EvaluationInfo record);
	
	int updateByPrimaryKeySelective(EvaluationInfo record);
	
	int updateByPrimaryKeyWithBLOBs(EvaluationInfo record);
	
	int updateByPrimaryKey(EvaluationInfo record);
	
	// 分页查询商品评论信息列表
	List<EvaluationVo> seachEvaluation(@Param("isExistImg") Short isExistImg, @Param("eval") EvaluationInfo eval, @Param("page") Pagination page);
	
	// 通过系统ID和商品拓展信息ID查询4星好评以上评论数
	Integer getPraiseNum(@Param("eval") EvaluationInfo eval);
	
	// 分页查询商品评价信息列表（后台）
	List<EvaluationVo> findEvaluation(@Param("eval") EvaluationInfo eval, @Param("page") Pagination page);
	
	// 更新评价信息状态
	boolean modifyState(EvaluationInfo eval);
	
	// 通过订单ID查询通过的评价数量
	Integer selectPassNum(EvaluationInfo eval);
	
	// 查询评论信息实体
	EvaluationInfo selectEvaluationInfo(EvaluationInfo eval);
	
	// 取消置顶
	boolean cancelTop(JSONObject params);
	
	// 批量添加商品评价信息
	int insertBatch(List<EvaluationInfo> evaluationInfos);
	
	// 回复内容
	boolean reply(EvaluationInfo eval);
	
	// 待评价的数量
	Integer getNoEvaluatedNum(@Param("sysId") Long sysId);
	
	// 查询商品评论数量~
	Integer getProEvalNum(@Param("sysId") Long sysId, @Param("proExtId") Long proExtId);
	
}